[% setvar title The Perl 6 summary for the week ending 20031130 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 summary for the week ending 20031130'></a><h1>The Perl 6 summary for the week ending 20031130</h1>
<p>Welcome back to the weekly Perl 6 Summary, which I'm hoping to keep on
a weekly cycle for the foreseeable future.</p>
<p>It's been a relatively low volume week this week, I'm assuming that
Thanksgiving had something to do with it (I hope those of you who
celebrate it had a jolly good extended weekend), and for the first
time in ages perl6-language saw almost as much traffic as
perl6-internals. We're still going to start with perl6-internals
though.</p>
<a name='Some PIR &quot;How do I?&quot; questions'></a><h2>Some PIR &quot;How do I?&quot; questions</h2>
<p>Last week Dan put up a list of questions about IMCC, intending it as a
bit of grit. This week Melvin Smith added a couple of layers of nacre
by checking in an initial IMCC FAQ (you'll find it at
<b><i>imcc/docs/imcfaq.pod</i></b> in your parrot directory if you're following
with CVS). After an initial flurry of work on adding to the FAQ, the
discussion seems to have drifted off into discussions of bike shed
pigmentation. Yes, the FAQ may need to be split eventually, but
splitting an FAQ into sub documents is trivial compared to actually
answering the questions. Ahem. Editorial ends.</p>
<p><a href='http://groups.google.com/groups?selm=5.1.1.6.2.20031123011917.03503858@pop.mindspring.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://www.parrotcode.org/faq/imcc' target='_blank'>www.parrotcode.org</a> -- The FAQ</p>
<a name='PIO_eof'></a><h2>PIO_eof</h2>
<p>Vladimir Lipsky had a few questions about how the Parrot IO subsystem
(PIO) handles error conditions. This sparked a discussion of whether
the  various PIO functions should make some assertions up front about
their arguments. Consensus said &quot;yes&quot;, they help with debugging, and
the performance 'hit' is minuscule.</p>
<p><a href='http://groups.google.com/groups?selm=006c01c3b267$7e683500$6b9d943e@87w5ovc8gmxcahy' target='_blank'>groups.google.com</a></p>
<a name='Freezing and Thawing'></a><h2>Freezing and Thawing</h2>
<p>Discussion of the details of object serialization continued this
week. Judging by the amount of clarification traffic that's been going
on in this thread (and others), I find myself wondering if the time
has come for some generous benefactor to sponsor the principals to get
together in a conference room with copious whiteboard
acreage. Sponsors welcome.</p>
<p><a href='http://groups.google.com/groups?selm=Pine.LNX.4.58.0311240851430.31299@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='Segfault warning boxes'></a><h2>Segfault warning boxes</h2>
<p>Consider a system of test machines, all of them happily running in
unattended mode, constantly checking out the latest version of parrot,
compiling everything, running the tests and reporting the results to
some central webserver that displays a status report for all to
see. It's not just a good idea, it's the Parrot tinderbox.</p>
<p>Now, consider an operating system that takes it upon itself to throw
up a modal dialog box when a program segfaults.</p>
<p>The two don't sit well together do they? Which is why Dan has
committed a patch to disable the &quot;Your program has crashed, want to
send a report to Microsoft?&quot; box that pops up on Win32 when Parrot
segfaults. Still, at least it can be disabled.</p>
<p>Dan asked for opinions on whether the (non tinderbox) default should
be to put up a dialog box or not. And it appears that, if you disable
the dialog box, there's no other notification (apart from the failed
test, obviously) that there was a segfault. I am sure I'm not alone in
boggling at this, but it looks like the default will be to display the
dialog.</p>
<p><a href='http://groups.google.com/groups?selm=Pine.LNX.4.58.0311251153350.19018@sprite.sidhe.org' target='_blank'>groups.google.com</a></p>
<a name='Perl 6 updated'></a><h2>Perl 6 updated</h2>
<p>Allison Randal sent in a patch to update the Perl 6 compiler to use
the right operators (<code>^+</code> becomes <code>&raquot;+&laquot;</code>, <code>~~</code>
(meant xor) becomes <code>^^</code>, making way for <code>=~</code> to become
<code>~~</code>). She's still working on other tweaks to get the semantics of
what's already been implemented right, and claims to be sufficiently
annoyed by the failing regex tests that she might have to go and make
them work to remove the annoyance. Which would be good. (I'm afraid
that the tantalizing code I mentioned last week has actually been
there for ages, as I feared it had). That capital fellow, chromatic
applied the patch.</p>
<p><a href='http://groups.google.com/groups?selm=rt-24559-67828.1.16647251862517@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='String formatting and transformation'></a><h2>String formatting and transformation</h2>
<p>Dan got around to specifying some details about string formatting and
transformation. Essentially there will be various case changing
transformations and a couple of different formatting approaches, one
<code>sprintf</code> like and another more like traditional COBOL style
formatting. Dan's not sure yet whether these formatters will get ops
or simply be implemented in the standard library.</p>
<p><a href='http://groups.google.com/groups?selm=a06010202bbebfb35bca6@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='AUTOLOAD anyone?'></a><h2>AUTOLOAD anyone?</h2>
<p>Someone calling itself ibotty wondered if there would be a default PMC
method that gets automagically called whenever a method call isn't
found. To which the answer is &quot;Yes, when it's done&quot;.</p>
<p><a href='http://groups.google.com/groups?selm=20031127235646.20556.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Determining PMC memory addresses'></a><h2>Determining PMC memory addresses</h2>
<p>Cory Spencer wanted to know if there was a PASM way of finding whether
two PMCs share the same memory address. &quot;Not yet&quot;, said Leo
T&ouml;tsch, &quot;but there are entries in the vtable to do it&quot;. This
sparked a discussion of the meaning of 'equal'. It was suggested that
Parrot use Lisp's triple equality test operators (one tests if two
things are the same thing, the second if two things have the same
value, and the third tests that they have the same structure). Jos
Visser argued (convincingly I thought) that having three operators
with the same semantics might be a Good Thing, but using Lisp's names
(<code>eq</code>, <code>eql</code> and <code>equal</code>) for them would definitely be a Bad Thing.</p>
<p><a href='http://groups.google.com/groups?selm=Pine.LNX.4.58.0311272124130.31738@okcomputer.antiflux.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, on perl6-language'></a><h1>Meanwhile, on perl6-language</h1>
<a name=''Core' language philosophy'></a><h2>'Core' language philosophy</h2>
<p>Branching off from a thread about using <code>catch</code> as a statement
modifier <i>&aacute; la</i> <code>if</code>, <code>unless</code> etc., Michael Lazzaro waxed
philosophical about the distinction between core and library. He
wondered if putting syntactic sugar into CP6AN and then having almost
everyone install it anyway wasn't a false economy. He went on to
defend the idea of the <code>catch</code> modifier.</p>
<p>Larry didn't agree. He suggested that a better way would be to look at
some kind of pragma which would make <code>err</code> (the low priority form of
<code>//</code>, aka 'defined or') put an implicit <code>try</code> around its left hand
argument. Michael still wasn't keen, but he wants to use <code>undef</code> to
stand for a SQLesque NULL.</p>
<p><a href='http://groups.google.com/groups?selm=479C7C28-2048-11D8-A666-000A277AA894@cognitivity.com' target='_blank'>groups.google.com</a></p>
<a name='The C Comma'></a><h2>The C Comma</h2>
<p>Luke Palmer doesn't like the C Comma -- the one that lets you
write:</p>
<pre>    while $n++, $foo &gt; $bar {...}</pre>
<p>He does like the semantics though, so he proposed renaming the C comma
and calling it <code>then</code>. People liked the idea of changing the name
because, if nothing else, it would mean one could write <code>@foo =
1,2,3;</code> and get a list with three elements rather than a one element
list containing the number 3. However, they weren't necessarily keen
on <code>then</code> as the new name. Damian wondered if we shouldn't just
insist on</p>
<pre>   while do { $n++; $foo &gt; $bar } {...}</pre>
<p>And then people started coming up various synonyms for 'and' in Latin
like <i>ac</i>, <i>cum</i> et cetera. Larry hasn't ruled on any of the options
yet.</p>
<p><a href='http://groups.google.com/groups?selm=20031125000038.GA30028@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='Properties'></a><h2>Properties</h2>
<p>Luke Palmer once again demonstrated his mastery of the telling
question by asking a series of questions about runtime
properties. Larry's answers, both to the immediate question and in the
thread that followed make for fascinating reading and leave us all
waiting with bated breath for Apocalypse 12 on Objects.</p>
<p>I'm afraid I'm going to punt on attempting to summarize the thread
though; Larry's always hard to summarize when he's introducing
anything new. You really should (at least) read his initial sketch
though -- role based object orientation looks (to this reader at
least) like a brilliant idea.</p>
<p><a href='http://groups.google.com/groups?selm=20031127070230.GA8488@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=20031127212123.GA24862@wall.org' target='_blank'>groups.google.com</a> -- Larry outlines his current
thinking</p>
<a name='Acknowledgements, Apologies, Announcements'></a><h1>Acknowledgements, Apologies, Announcements</h1>
<p>I've still not got 'round to getting the link shortening in place I'm
afraid. For some reason the appropriate modules don't seem to want to
install on my G5. Maybe next week.</p>
<p>Leon Brocard has taken on the role of Pumpking for Perl 5.004 and will
not be appearing in these summaries for the duration of his reign out
of respect. After all, being a pumpking requires a kind of dignity
that would be incompatible with being a running joke.</p>
<p>If you find these summaries useful or enjoyable, please consider
contributing time and/or money to the Perl Foundation to help support
the Perl 6 effort. You might also like to send me feedback at
<i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i>, or drop by my website.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p><a href='http://www.bofh.org.uk:8080/' target='_blank'>www.bofh.org.uk</a> -- My website, &quot;Just a Summary&quot;</p>
</div>
